From 2a287f317a51f5f02b643af0acf2733cadbb8081 Mon Sep 17 00:00:00 2001
From: eug-vs <eugene@eug-vs.xyz>
Date: Sat, 17 Sep 2022 15:24:50 +0300
Subject: feat: initial commit

---
 src/pages/[...path].tsx | 56 +++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 56 insertions(+)
 create mode 100644 src/pages/[...path].tsx

(limited to 'src/pages/[...path].tsx')

diff --git a/src/pages/[...path].tsx b/src/pages/[...path].tsx
new file mode 100644
index 0000000..30fdcd6
--- /dev/null
+++ b/src/pages/[...path].tsx
@@ -0,0 +1,56 @@
+import _ from 'lodash';
+import type { GetStaticPropsContext, NextPage } from "next";
+import ReactMarkdown from 'react-markdown';
+import Head from "next/head";
+import deepReadDir from "../deepReadDir";
+import fs from 'fs';
+
+
+const MARKDOWN_DIR = '../eug-vs-xyz/src';
+
+const transformLinkURI = (uri: string): string => {
+  return uri.match(/(.*)\.md/)?.[1] || uri;
+}
+
+export const getStaticProps = async (context: GetStaticPropsContext) => {
+  const path = _.isArray(context.params?.path) && context.params?.path || [context.params?.path];
+  const markdownSource = fs.readFileSync(`${MARKDOWN_DIR}/${path?.join('/')}.md`).toString();
+  return {
+    props: {
+      markdownSource,
+      path,
+    }
+  }
+}
+
+export const getStaticPaths = async () => {
+  const globalPaths = await deepReadDir(MARKDOWN_DIR);
+  const paths = globalPaths
+    .map(globalPath => globalPath.match(`${MARKDOWN_DIR}/(.*)\.md`)?.[1] )
+    .filter(p => p)
+    .map(p => p?.split('/'))
+    .map(path => ({ params: { path } }));
+  console.log(paths);
+  return {
+    paths,
+    fallback: false,
+  }
+}
+
+const Page: NextPage = ({ markdownSource }: any) => {
+  return (
+    <>
+      <Head>
+        <title>Create T3 App</title>
+        <meta name="description" content="Generated by create-t3-app" />
+        <link rel="icon" href="/favicon.ico" />
+      </Head>
+      <main>
+        <ReactMarkdown transformLinkUri={transformLinkURI}>{markdownSource}</ReactMarkdown>
+      </main>
+    </>
+  );
+};
+
+export default Page;
+
-- 
cgit v1.2.3

